#include"Tcpserve.hpp"
#include"common.hpp"
#include"Command.hpp"

void User(const char* agrv)
{
    std::cout<<"User should: "<< agrv <<" port"<<std::endl;
    exit(USER_ERR);
}

int main(int argc,char* argv[])
{
    if(argc != 2)
    {
        User(argv[0]);
    }
    uint16_t port = std::stoi(argv[1]);
    Command cmd;
    
    std::unique_ptr<Tcpserver> utcpser = std::make_unique<Tcpserver>(port,[&cmd](int sfd,const 
        std::string& cmdstr,Inetaddr& addr)->std::string{
        // std::string test = "test";
        return cmdstr;
        //std::string result =  cmd.Excute(cmdstr,addr);
        //return result;
    });

    utcpser->Init();
    utcpser->Start();

    return 0;
}



    // void testServe(int sfd,Inetaddr& peer)
    // {
        
    //     char buff[512];
    //     while(1)
    //     {
    //         ssize_t rs = read(sfd,buff,sizeof(buff)-1);
    //         if(rs > 0){
    //             buff[rs] = 0;
    //             std::cout<< peer.String_addr() << "say# "<<buff<<std::endl;

    //             std::string wstr;
    //             wstr += peer.String_addr()+ "say# " + buff;
    //             ssize_t ws = write(sfd,wstr.c_str(),wstr.size());
    //         }
    //         else if (rs == 0)
    //         {
    //             LOG(level::INFO) << peer.String_addr() << " 退出了...";
    //             close(sfd);
    //             break;
    //         }
    //         else
    //         {
    //             LOG(level::DEBUG) << peer.String_addr() << " 异常...";
    //             close(sfd);
    //             break;
    //         }
            
    //         //LOG(level::DEBUG)<<"task success";
    //     }

    // }

